/**
 * 
 */
package inmobiliaria.frsf.dao;

import inmobiliaria.frsf.model.Calle;
import inmobiliaria.frsf.model.Domicilio;
import inmobiliaria.frsf.model.Localidad;

import java.util.List;
import java.util.Map;

/**
 * @author Lucas
 * 
 */
public interface ColeccionesComunesDAO {

	/**
	 * Obtiene todas las provincias
	 * 
	 * 
	 * @throws Exception
	 */
	List<Map<String, Object>> getProvincias() throws Exception;

	/**
	 * Obtiene las localidades pertenecientes a una provincia.
	 * 
	 * @param idProvincia
	 *            Id provincia
	 * @throws Exception
	 */
	List<Map<String, Object>> getLocalidades(Long idProvincia) throws Exception;

	/**
	 * Obtiene las calles pertenecientes a una localidad.
	 * 
	 * @param idLocalidad
	 *            Id localidad
	 * @throws Exception
	 */
	List<Map<String, Object>> getCalles(Integer idLocalidad) throws Exception;

	/**
	 * Guarda una nueva Localidad
	 * 
	 * @param localidad
	 * @return
	 * @throws Exception
	 */
	Integer insertLocalidad(Localidad localidad) throws Exception;

	/**
	 * Guarda una nueva calle
	 * 
	 * @param calle
	 * @return
	 * @throws Exception
	 */
	Integer insertCalle(Calle calle) throws Exception;

	/**
	 * Guarda un nuevo domicilio
	 * 
	 * @return
	 * @throws Exception
	 */
	Integer insertDomicilio(Domicilio domicilio) throws Exception;

	/**
	 * Actualiza los datos relacionados a un domicilio
	 * 
	 * @param domicilio
	 *            Domicilio a guardar
	 * @throws Exception
	 */
	void updateDomicilio(Domicilio domicilio) throws Exception;

}
